---
title: "mdlCodeTables module"
summary: "Public module providing cached code-table accessors for the LegalMaintenance domain."
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# mdlCodeTables module

`mdlCodeTables` (namespace `SAIF.Business.Claim.Legal.CodeTables`) is the sole `Public Module` in this library. It declares approximately 31 code-table classes — each inheriting `CTB.CodeTable(Of T)` or `CTB.ExtendedCodeMap` from the shared code-table-base (CTB) framework — and a generic accessor that provides in-memory caching and refresh semantics so that lookup lists (hearing types, case statuses, letter types, staff lists, etc.) are queried from Oracle once per application lifetime rather than per request.

## Purpose
- Centralizes all static/slow-changing lookup-list retrieval for the LegalMaintenance legal domain in one module, avoiding per-request database round-trips.*
- Provides a uniform `GetCodeTable(Of T)` generic accessor so consuming screens/business objects don't need to know each code table's individual caching mechanics.*
- Backs the ~31 code-table read SQL statements documented in [SQL-120 to SQL-150](../../sql/sql-120-to-sql-150-code-tables.md).

## Context
- Namespace: `SAIF.Business.Claim.Legal.CodeTables`
- Assembly: `SAIF.Business.Claim.Legal.dll` (project reference, `reference_type: embedded`)
- Declared in: `SAIF.Business.Claim.Legal\mdlCodeTables.vb`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `GetCodeTable(Of T)` | `Public Function GetCodeTable(Of T As {New, CTB.CodeTable(Of T)})() As T` | Returns the cached singleton instance of the requested code-table type, populating it from Oracle via `SqlHelper.ResultSetQuery` on first access.* |
| `clsLegalStaffList` and ~30 sibling code-table classes | `Public Class <Name> : Inherits CTB.CodeTable(Of <Name>)` (or `CTB.ExtendedCodeMap`) | Each represents one cached lookup list (e.g. legal staff, hearing type, case status, letter type, appeal level) sourced by exactly one SQL-ID in the [code-tables SQL catalog](../../sql/sql-120-to-sql-150-code-tables.md).* |

## Behavioral notes
- Code tables are populated with `New SqlHelper.ResultSetQuery(inDPI).Execute(sql)` and cached per the `CTB.CodeTable(Of T)` base-class refresh contract; exact cache invalidation timing (per-request vs. per-application-lifetime) is defined in the `CTB` framework, not this library.**
- `clsLegalStaffList` is backed by `pk80001_legalnet.SelectLegalEmployees` (not-found procedure) rather than a direct SQL statement — see [procedures/pk80001_legalnet.md](../../procedures/pk80001_legalnet.md).*
- Individual code-table class names (beyond `clsLegalStaffList`) were not enumerated exhaustively in the Phase 1 analysis; the full list of ~31 classes should be confirmed directly against `mdlCodeTables.vb` if per-class documentation is required.**

## Related documentation
- [API index](../index.md)
- [Library index](../../index.md)
- [SQL catalog: code tables](../../sql/sql-120-to-sql-150-code-tables.md)
- [Procedure catalog: pk80001_legalnet](../../procedures/pk80001_legalnet.md)
- [Database tables](../../database-tables.md)

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Business.Claim.Legal\mdlCodeTables.vb`
